#ifndef PLAYERSETTINGSDIALOG_H
#define PLAYERSETTINGSDIALOG_H

#include <QDialog>
#include <QComboBox>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QGroupBox>
#include "models/videoplayermodel.h"

/**
 * @brief 视频播放器设置对话框
 * 
 * 提供播放模式和播放速度的设置
 */
class PlayerSettingsDialog : public QDialog
{
    Q_OBJECT

public:
    explicit PlayerSettingsDialog(QWidget *parent = nullptr);
    ~PlayerSettingsDialog();

    /**
     * @brief 设置当前播放模式
     * @param mode 播放模式
     */
    void setPlayMode(VideoPlayerModel::PlayMode mode);

    /**
     * @brief 设置当前播放速度
     * @param rate 播放速度
     */
    void setPlaybackRate(qreal rate);

    /**
     * @brief 获取选择的播放模式
     * @return 播放模式
     */
    VideoPlayerModel::PlayMode playMode() const;

    /**
     * @brief 获取选择的播放速度
     * @return 播放速度
     */
    qreal playbackRate() const;

signals:
    /**
     * @brief 设置已应用信号
     * @param mode 新的播放模式
     * @param rate 新的播放速度
     */
    void settingsApplied(VideoPlayerModel::PlayMode mode, qreal rate);

private slots:
    /**
     * @brief 确定按钮点击
     */
    void onOkClicked();

    /**
     * @brief 取消按钮点击
     */
    void onCancelClicked();

private:
    /**
     * @brief 初始化UI
     */
    void setupUI();

    // UI组件
    QComboBox *m_playModeComboBox;      // 播放模式下拉框
    QComboBox *m_playbackRateComboBox;  // 播放速度下拉框
    QPushButton *m_okButton;             // 确定按钮
    QPushButton *m_cancelButton;         // 取消按钮

    // 当前设置
    VideoPlayerModel::PlayMode m_currentPlayMode;
    qreal m_currentPlaybackRate;
};

#endif // PLAYERSETTINGSDIALOG_H

